[
    {
        "id": "a933",
        "name": "Add MPLS dec_ttl action with pipe opcode",
        "category": [
            "actions",
            "mpls"
        ],
        "setup": [
            [
                "$TC actions flush action mpls",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action mpls dec_ttl pipe index 8",
        "expExitCode": "0",
        "verifyCmd": "$TC actions list action mpls",
        "matchPattern": "action order [0-9]+: mpls.*dec_ttl.*pipe.*index 8 ref",
        "matchCount": "1",
        "teardown": [
            "$TC actions flush action mpls"
        ]
    },
    {
        "id": "08d1",
        "name": "Add mpls dec_ttl action with pass opcode",
        "category": [
            "actions",
            "mpls"
        ],
        "setup": [
            [
                "$TC actions flush action mpls",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action mpls dec_ttl pass index 8",
        "expExitCode": "0",
        "verifyCmd": "$TC actions get action mpls index 8",
        "matchPattern": "action order [0-9]+: mpls.*dec_ttl.*pass.*index 8 ref",
        "matchCount": "1",
        "teardown": [
            "$TC actions flush action mpls"
        ]
    },
    {
        "id": "d786",
        "name": "Add mpls dec_ttl action with drop opcode",
        "category": [
            "actions",
            "mpls"
        ],
        "setup": [
            [
                "$TC actions flush action mpls",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action mpls dec_ttl drop index 8",
        "expExitCode": "0",
        "verifyCmd": "$TC actions get action mpls index 8",
        "matchPattern": "action order [0-9]+: mpls.*dec_ttl.*drop.*index 8 ref",
        "matchCount": "1",
        "teardown": [
            "$TC actions flush action mpls"
        ]
    },
    {
        "id": "f334",
        "name": "Add mpls dec_ttl action with reclassify opcode",
        "category": [
            "actions",
            "mpls"
        ],
        "setup": [
            [
                "$TC actions flush action mpls",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action mpls dec_ttl reclassify index 8",
        "expExitCode": "0",
        "verifyCmd": "$TC actions get action mpls index 8",
        "matchPattern": "action order [0-9]+: mpls.*dec_ttl.*reclassify.*index 8 ref",
        "matchCount": "1",
        "teardown": [
            "$TC actions flush action mpls"
        ]
    },
    {
        "id": "29bd",
        "name": "Add mpls dec_ttl action with continue opcode",
        "category": [
            "actions",
            "mpls"
        ],
        "setup": [
            [
                "$TC actions flush action mpls",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action mpls dec_ttl continue index 8",
        "expExitCode": "0",
        "verifyCmd": "$TC actions get action mpls index 8",
        "matchPattern": "action order [0-9]+: mpls.*dec_ttl.*continue.*index 8 ref",
        "matchCount": "1",
        "teardown": [
            "$TC actions flush action mpls"
        ]
    },
    {
        "id": "48df",
        "name": "Add mpls dec_ttl action with jump opcode",
        "category": [
            "actions",
            "mpls"
        ],
        "setup": [
            [
                "$TC actions flush action mpls",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action mpls dec_ttl jump 10 index 8",
        "expExitCode": "0",
        "verifyCmd": "$TC actions list action mpls",
        "matchPattern": "action order [0-9]+: mpls.*jump 10.*index 8 ref",
        "matchCount": "1",
        "teardown": [
            "$TC actions flush action mpls"
        ]
    },
    {
        "id": "62eb",
        "name": "Add mpls dec_ttl action with trap opcode",
        "category": [
            "actions",
            "mpls"
        ],
        "setup": [
            [
                "$TC actions flush action mpls",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action mpls dec_ttl trap index 8",
        "expExitCode": "0",
        "verifyCmd": "$TC actions list action mpls",
        "matchPattern": "action order [0-9]+: mpls.*dec_ttl trap.*index 8 ref",
        "matchCount": "1",
        "teardown": [
            "$TC actions flush action mpls"
        ]
    },
    {
        "id": "09d2",
        "name": "Add mpls dec_ttl action with opcode and cookie",
        "category": [
            "actions",
            "mpls"
        ],
        "setup": [
            [
                "$TC actions flush action mpls",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action mpls dec_ttl pipe index 8 cookie aabbccddeeff",
        "expExitCode": "0",
        "verifyCmd": "$TC actions list action mpls",
        "matchPattern": "action order [0-9]+: mpls.*dec_ttl pipe.*index 8 ref.*cookie aabbccddeeff",
        "matchCount": "1",
        "teardown": [
            "$TC actions flush action mpls"
        ]
    },
    {
        "id": "c170",
        "name": "Add mpls dec_ttl action with opcode and cookie of max length",
        "category": [
            "actions",
            "mpls"
        ],
        "setup": [
            [
                "$TC actions flush action mpls",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action mpls dec_ttl continue index 8 cookie aa11bb22cc33dd44ee55ff66aa11b1b2",
        "expExitCode": "0",
        "verifyCmd": "$TC actions list action mpls",
        "matchPattern": "action order [0-9]+: mpls.*dec_ttl continue.*index 8 ref.*cookie aa11bb22cc33dd44ee55ff66aa11b1b2",
        "matchCount": "1",
        "teardown": [
            "$TC actions flush action mpls"
        ]
    },
    {
        "id": "9118",
        "name": "Add mpls dec_ttl action with invalid opcode",
        "category": [
            "actions",
            "mpls"
        ],
        "setup": [
            [
                "$TC actions flush action mpls",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action mpls dec_ttl foo index 8",
        "expExitCode": "255",
        "verifyCmd": "$TC actions list action mpls",
        "matchPattern": "action order [0-9]+: mpls.*dec_ttl.*foo.*index 8 ref",
        "matchCount": "0",
        "teardown": []
    },
    {
        "id": "6ce1",
        "name": "Add mpls dec_ttl action with label (invalid)",
        "category": [
            "actions",
            "mpls"
        ],
        "setup": [
            [
                "$TC actions flush action mpls",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action mpls dec_ttl label 20",
        "expExitCode": "255",
        "verifyCmd": "$TC actions list action mpls",
        "matchPattern": "action order [0-9]+: mpls.*dec_ttl.*label.*20.*pipe",
        "matchCount": "0",
        "teardown": []
    },
    {
        "id": "352f",
        "name": "Add mpls dec_ttl action with tc (invalid)",
        "category": [
            "actions",
            "mpls"
        ],
        "setup": [
            [
                "$TC actions flush action mpls",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action mpls dec_ttl tc 3",
        "expExitCode": "255",
        "verifyCmd": "$TC actions list action mpls",
        "matchPattern": "action order [0-9]+: mpls.*dec_ttl.*tc.*3.*pipe",
        "matchCount": "0",
        "teardown": []
    },
    {
        "id": "fa1c",
        "name": "Add mpls dec_ttl action with ttl (invalid)",
        "category": [
            "actions",
            "mpls"
        ],
        "setup": [
            [
                "$TC actions flush action mpls",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action mpls dec_ttl ttl 20",
        "expExitCode": "255",
        "verifyCmd": "$TC actions list action mpls",
        "matchPattern": "action order [0-9]+: mpls.*dec_ttl.*ttl.*20.*pipe",
        "matchCount": "0",
        "teardown": []
    },
    {
        "id": "6b79",
        "name": "Add mpls dec_ttl action with bos (invalid)",
        "category": [
            "actions",
            "mpls"
        ],
        "setup": [
            [
                "$TC actions flush action mpls",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action mpls dec_ttl bos 1",
        "expExitCode": "255",
        "verifyCmd": "$TC actions list action mpls",
        "matchPattern": "action order [0-9]+: mpls.*dec_ttl.*bos.*1.*pipe",
        "matchCount": "0",
        "teardown": []
    },
    {
        "id": "d4c4",
        "name": "Add mpls pop action with ip proto",
        "category": [
            "actions",
            "mpls"
        ],
        "setup": [
            [
                "$TC actions flush action mpls",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action mpls pop protocol ipv4",
        "expExitCode": "0",
        "verifyCmd": "$TC actions list action mpls",
        "matchPattern": "action order [0-9]+: mpls.*pop.*protocol.*ip.*pipe",
        "matchCount": "1",
        "teardown": [
            "$TC actions flush action mpls"
        ]
    },
    {
        "id": "91fb",
        "name": "Add mpls pop action with ip proto and cookie",
        "category": [
            "actions",
            "mpls"
        ],
        "setup": [
            [
                "$TC actions flush action mpls",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action mpls pop protocol ipv4 cookie 12345678",
        "expExitCode": "0",
        "verifyCmd": "$TC actions list action mpls",
        "matchPattern": "action order [0-9]+: mpls.*pop.*protocol.*ip.*pipe.*ref 1.*cookie 12345678",
        "matchCount": "1",
        "teardown": [
            "$TC actions flush action mpls"
        ]
    },
    {
        "id": "92fe",
        "name": "Add mpls pop action with mpls proto",
        "category": [
            "actions",
            "mpls"
        ],
        "setup": [
            [
                "$TC actions flush action mpls",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action mpls pop protocol mpls_mc",
        "expExitCode": "0",
        "verifyCmd": "$TC actions list action mpls",
        "matchPattern": "action order [0-9]+: mpls.*pop.*protocol.*mpls_mc.*pipe",
        "matchCount": "1",
        "teardown": [
            "$TC actions flush action mpls"
        ]
    },
    {
        "id": "7e23",
        "name": "Add mpls pop action with no protocol (invalid)",
        "category": [
            "actions",
            "mpls"
        ],
        "setup": [
            [
                "$TC actions flush action mpls",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action mpls pop",
        "expExitCode": "255",
        "verifyCmd": "$TC actions list action mpls",
        "matchPattern": "action order [0-9]+: mpls.*pop.*pipe",
        "matchCount": "0",
        "teardown": []
    },
    {
        "id": "6182",
        "name": "Add mpls pop action with label (invalid)",
        "category": [
            "actions",
            "mpls"
        ],
        "setup": [
            [
                "$TC actions flush action mpls",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action mpls pop protocol ipv4 label 20",
        "expExitCode": "255",
        "verifyCmd": "$TC actions list action mpls",
        "matchPattern": "action order [0-9]+: mpls.*pop.*label.*20.*pipe",
        "matchCount": "0",
        "teardown": []
    },
    {
        "id": "6475",
        "name": "Add mpls pop action with tc (invalid)",
        "category": [
            "actions",
            "mpls"
        ],
        "setup": [
            [
                "$TC actions flush action mpls",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action mpls pop protocol ipv4 tc 3",
        "expExitCode": "255",
        "verifyCmd": "$TC actions list action mpls",
        "matchPattern": "action order [0-9]+: mpls.*pop.*tc.*3.*pipe",
        "matchCount": "0",
        "teardown": []
    },
    {
        "id": "067b",
        "name": "Add mpls pop action with ttl (invalid)",
        "category": [
            "actions",
            "mpls"
        ],
        "setup": [
            [
                "$TC actions flush action mpls",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action mpls pop protocol ipv4 ttl 20",
        "expExitCode": "255",
        "verifyCmd": "$TC actions list action mpls",
        "matchPattern": "action order [0-9]+: mpls.*pop.*ttl.*20.*pipe",
        "matchCount": "0",
        "teardown": []
    },
    {
        "id": "7316",
        "name": "Add mpls pop action with bos (invalid)",
        "category": [
            "actions",
            "mpls"
        ],
        "setup": [
            [
                "$TC actions flush action mpls",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action mpls pop protocol ipv4 bos 1",
        "expExitCode": "255",
        "verifyCmd": "$TC actions list action mpls",
        "matchPattern": "action order [0-9]+: mpls.*pop.*bos.*1.*pipe",
        "matchCount": "0",
        "teardown": []
    },
    {
        "id": "38cc",
        "name": "Add mpls push action with label",
        "category": [
            "actions",
            "mpls"
        ],
        "setup": [
            [
                "$TC actions flush action mpls",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action mpls push label 20",
        "expExitCode": "0",
        "verifyCmd": "$TC actions list action mpls",
        "matchPattern": "action order [0-9]+: mpls.*push.*protocol.*mpls_uc.*label.*20.*ttl.*[0-9]+.*pipe",
        "matchCount": "1",
        "teardown": [
            "$TC actions flush action mpls"
        ]
    },
    {
        "id": "c281",
        "name": "Add mpls push action with mpls_mc protocol",
        "category": [
            "actions",
            "mpls"
        ],
        "setup": [
            [
                "$TC actions flush action mpls",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action mpls push protocol mpls_mc label 20",
        "expExitCode": "0",
        "verifyCmd": "$TC actions list action mpls",
        "matchPattern": "action order [0-9]+: mpls.*push.*protocol.*mpls_mc.*label.*20.*ttl.*[0-9]+.*pipe",
        "matchCount": "1",
        "teardown": [
            "$TC actions flush action mpls"
        ]
    },
    {
        "id": "5db4",
        "name": "Add mpls push action with label, tc and ttl",
        "category": [
            "actions",
            "mpls"
        ],
        "setup": [
            [
                "$TC actions flush action mpls",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action mpls push label 20 tc 3 ttl 128",
        "expExitCode": "0",
        "verifyCmd": "$TC actions list action mpls",
        "matchPattern": "action order [0-9]+: mpls.*push.*protocol.*mpls_uc.*label.*20.*tc.*3.*ttl.*128.*pipe",
        "matchCount": "1",
        "teardown": [
            "$TC actions flush action mpls"
        ]
    },
    {
        "id": "7c34",
        "name": "Add mpls push action with label, tc ttl and cookie of max length",
        "category": [
            "actions",
            "mpls"
        ],
        "setup": [
            [
                "$TC actions flush action mpls",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action mpls push label 20 tc 3 ttl 128 cookie aa11bb22cc33dd44ee55ff66aa11b1b2",
        "expExitCode": "0",
        "verifyCmd": "$TC actions list action mpls",
        "matchPattern": "action order [0-9]+: mpls.*push.*protocol.*mpls_uc.*label.*20.*tc.*3.*ttl.*128.*pipe.*ref 1.*cookie aa11bb22cc33dd44ee55ff66aa11b1b2",
        "matchCount": "1",
        "teardown": [
            "$TC actions flush action mpls"
        ]
    },
    {
        "id": "16eb",
        "name": "Add mpls push action with label and bos",
        "category": [
            "actions",
            "mpls"
        ],
        "setup": [
            [
                "$TC actions flush action mpls",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action mpls push label 20 bos 1",
        "expExitCode": "0",
        "verifyCmd": "$TC actions list action mpls",
        "matchPattern": "action order [0-9]+: mpls.*push.*protocol.*mpls_uc.*label.*20.*bos.*1.*pipe",
        "matchCount": "1",
        "teardown": [
            "$TC actions flush action mpls"
        ]
    },
    {
        "id": "d69d",
        "name": "Add mpls push action with no label (invalid)",
        "category": [
            "actions",
            "mpls"
        ],
        "setup": [
            [
                "$TC actions flush action mpls",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action mpls push",
        "expExitCode": "255",
        "verifyCmd": "$TC actions list action mpls",
        "matchPattern": "action order [0-9]+: mpls.*push.*protocol.*mpls_uc.*pipe",
        "matchCount": "0",
        "teardown": []
    },
    {
        "id": "e8e4",
        "name": "Add mpls push action with ipv4 protocol (invalid)",
        "category": [
            "actions",
            "mpls"
        ],
        "setup": [
            [
                "$TC actions flush action mpls",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action mpls push protocol ipv4 label 20",
        "expExitCode": "255",
        "verifyCmd": "$TC actions list action mpls",
        "matchPattern": "action order [0-9]+: mpls.*push.*protocol.*mpls_uc.*label.*20.*ttl.*[0-9]+.*pipe",
        "matchCount": "0",
        "teardown": []
    },
    {
        "id": "ecd0",
        "name": "Add mpls push action with out of range label (invalid)",
        "category": [
            "actions",
            "mpls"
        ],
        "setup": [
            [
                "$TC actions flush action mpls",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action mpls push label 1048576",
        "expExitCode": "255",
        "verifyCmd": "$TC actions list action mpls",
        "matchPattern": "action order [0-9]+: mpls.*push.*protocol.*mpls_uc.*label.*1048576.*pipe",
        "matchCount": "0",
        "teardown": []
    },
    {
        "id": "d303",
        "name": "Add mpls push action with out of range tc (invalid)",
        "category": [
            "actions",
            "mpls"
        ],
        "setup": [
            [
                "$TC actions flush action mpls",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action mpls push label 20 tc 8",
        "expExitCode": "255",
        "verifyCmd": "$TC actions list action mpls",
        "matchPattern": "action order [0-9]+: mpls.*push.*protocol.*mpls_uc.*label.*20.*tc.*8.*pipe",
        "matchCount": "0",
        "teardown": []
    },
    {
        "id": "fd6e",
        "name": "Add mpls push action with ttl of 0 (invalid)",
        "category": [
            "actions",
            "mpls"
        ],
        "setup": [
            [
                "$TC actions flush action mpls",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action mpls push label 20 ttl 0",
        "expExitCode": "255",
        "verifyCmd": "$TC actions list action mpls",
        "matchPattern": "action order [0-9]+: mpls.*push.*protocol.*mpls_uc.*label.*20.*ttl.*0.*pipe",
        "matchCount": "0",
        "teardown": []
    },
    {
        "id": "19e9",
        "name": "Add mpls mod action with mpls label",
        "category": [
            "actions",
            "mpls"
        ],
        "setup": [
            [
                "$TC actions flush action mpls",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action mpls mod label 20",
        "expExitCode": "0",
        "verifyCmd": "$TC actions list action mpls",
        "matchPattern": "action order [0-9]+: mpls.*modify.*label.*20.*pipe",
        "matchCount": "1",
        "teardown": [
            "$TC actions flush action mpls"
        ]
    },
    {
        "id": "1fde",
        "name": "Add mpls mod action with max mpls label",
        "category": [
            "actions",
            "mpls"
        ],
        "setup": [
            [
                "$TC actions flush action mpls",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action mpls mod label 0xfffff",
        "expExitCode": "0",
        "verifyCmd": "$TC actions list action mpls",
        "matchPattern": "action order [0-9]+: mpls.*modify.*label.*1048575.*pipe",
        "matchCount": "1",
        "teardown": [
            "$TC actions flush action mpls"
        ]
    },
    {
        "id": "0c50",
        "name": "Add mpls mod action with mpls label exceeding max (invalid)",
        "category": [
            "actions",
            "mpls"
        ],
        "setup": [
            [
                "$TC actions flush action mpls",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action mpls mod label 0x100000",
        "expExitCode": "255",
        "verifyCmd": "$TC actions list action mpls",
        "matchPattern": "action order [0-9]+: mpls.*modify.*label.*1048576.*pipe",
        "matchCount": "0",
        "teardown": []
    },
    {
        "id": "10b6",
        "name": "Add mpls mod action with mpls label of MPLS_LABEL_IMPLNULL (invalid)",
        "category": [
            "actions",
            "mpls"
        ],
        "setup": [
            [
                "$TC actions flush action mpls",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action mpls mod label 3",
        "expExitCode": "255",
        "verifyCmd": "$TC actions list action mpls",
        "matchPattern": "action order [0-9]+: mpls.*modify.*label.*3.*pipe",
        "matchCount": "0",
        "teardown": []
    },
    {
        "id": "57c9",
        "name": "Add mpls mod action with mpls min tc",
        "category": [
            "actions",
            "mpls"
        ],
        "setup": [
            [
                "$TC actions flush action mpls",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action mpls mod tc 0",
        "expExitCode": "0",
        "verifyCmd": "$TC actions list action mpls",
        "matchPattern": "action order [0-9]+: mpls.*modify.*tc.*0.*pipe",
        "matchCount": "1",
        "teardown": [
            "$TC actions flush action mpls"
        ]
    },
    {
        "id": "6872",
        "name": "Add mpls mod action with mpls max tc",
        "category": [
            "actions",
            "mpls"
        ],
        "setup": [
            [
                "$TC actions flush action mpls",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action mpls mod tc 7",
        "expExitCode": "0",
        "verifyCmd": "$TC actions list action mpls",
        "matchPattern": "action order [0-9]+: mpls.*modify.*tc.*7.*pipe",
        "matchCount": "1",
        "teardown": [
            "$TC actions flush action mpls"
        ]
    },
    {
        "id": "a70a",
        "name": "Add mpls mod action with mpls tc exceeding max (invalid)",
        "category": [
            "actions",
            "mpls"
        ],
        "setup": [
            [
                "$TC actions flush action mpls",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action mpls mod tc 8",
        "expExitCode": "255",
        "verifyCmd": "$TC actions list action mpls",
        "matchPattern": "action order [0-9]+: mpls.*modify.*tc.*4.*pipe",
        "matchCount": "0",
        "teardown": []
    },
    {
        "id": "6ed5",
        "name": "Add mpls mod action with mpls ttl",
        "category": [
            "actions",
            "mpls"
        ],
        "setup": [
            [
                "$TC actions flush action mpls",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action mpls mod ttl 128",
        "expExitCode": "0",
        "verifyCmd": "$TC actions list action mpls",
        "matchPattern": "action order [0-9]+: mpls.*modify.*ttl.*128.*pipe",
        "matchCount": "1",
        "teardown": [
            "$TC actions flush action mpls"
        ]
    },
    {
        "id": "77c1",
        "name": "Add mpls mod action with mpls ttl and cookie",
        "category": [
            "actions",
            "mpls"
        ],
        "setup": [
            [
                "$TC actions flush action mpls",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action mpls mod ttl 128 cookie aa11bb22cc33dd44ee55ff66aa11b1b2",
        "expExitCode": "0",
        "verifyCmd": "$TC actions list action mpls",
        "matchPattern": "action order [0-9]+: mpls.*modify.*ttl.*128.*pipe.*ref 1.*cookie aa11bb22cc33dd44ee55ff66aa11b1b2",
        "matchCount": "1",
        "teardown": [
            "$TC actions flush action mpls"
        ]
    },
    {
        "id": "b80f",
        "name": "Add mpls mod action with mpls max ttl",
        "category": [
            "actions",
            "mpls"
        ],
        "setup": [
            [
                "$TC actions flush action mpls",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action mpls mod ttl 255",
        "expExitCode": "0",
        "verifyCmd": "$TC actions list action mpls",
        "matchPattern": "action order [0-9]+: mpls.*modify.*ttl.*255.*pipe",
        "matchCount": "1",
        "teardown": [
            "$TC actions flush action mpls"
        ]
    },
    {
        "id": "8864",
        "name": "Add mpls mod action with mpls min ttl",
        "category": [
            "actions",
            "mpls"
        ],
        "setup": [
            [
                "$TC actions flush action mpls",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action mpls mod ttl 1",
        "expExitCode": "0",
        "verifyCmd": "$TC actions list action mpls",
        "matchPattern": "action order [0-9]+: mpls.*modify.*ttl.*1.*pipe",
        "matchCount": "1",
        "teardown": [
            "$TC actions flush action mpls"
        ]
    },
    {
        "id": "6c06",
        "name": "Add mpls mod action with mpls ttl of 0 (invalid)",
        "category": [
            "actions",
            "mpls"
        ],
        "setup": [
            [
                "$TC actions flush action mpls",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action mpls mod ttl 0",
        "expExitCode": "255",
        "verifyCmd": "$TC actions list action mpls",
        "matchPattern": "action order [0-9]+: mpls.*modify.*ttl.*0.*pipe",
        "matchCount": "0",
        "teardown": []
    },
    {
        "id": "b5d8",
        "name": "Add mpls mod action with mpls ttl exceeding max (invalid)",
        "category": [
            "actions",
            "mpls"
        ],
        "setup": [
            [
                "$TC actions flush action mpls",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action mpls mod ttl 256",
        "expExitCode": "255",
        "verifyCmd": "$TC actions list action mpls",
        "matchPattern": "action order [0-9]+: mpls.*modify.*ttl.*256.*pipe",
        "matchCount": "0",
        "teardown": []
    },
    {
        "id": "451f",
        "name": "Add mpls mod action with mpls max bos",
        "category": [
            "actions",
            "mpls"
        ],
        "setup": [
            [
                "$TC actions flush action mpls",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action mpls mod bos 1",
        "expExitCode": "0",
        "verifyCmd": "$TC actions list action mpls",
        "matchPattern": "action order [0-9]+: mpls.*modify.*bos.*1.*pipe",
        "matchCount": "1",
        "teardown": [
            "$TC actions flush action mpls"
        ]
    },
    {
        "id": "a1ed",
        "name": "Add mpls mod action with mpls min bos",
        "category": [
            "actions",
            "mpls"
        ],
        "setup": [
            [
                "$TC actions flush action mpls",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action mpls mod bos 0",
        "expExitCode": "0",
        "verifyCmd": "$TC actions list action mpls",
        "matchPattern": "action order [0-9]+: mpls.*modify.*bos.*0.*pipe",
        "matchCount": "1",
        "teardown": [
            "$TC actions flush action mpls"
        ]
    },
    {
        "id": "3dcf",
        "name": "Add mpls mod action with mpls bos exceeding max (invalid)",
        "category": [
            "actions",
            "mpls"
        ],
        "setup": [
            [
                "$TC actions flush action mpls",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action mpls mod bos 2",
        "expExitCode": "255",
        "verifyCmd": "$TC actions list action mpls",
        "matchPattern": "action order [0-9]+: mpls.*modify.*bos.*2.*pipe",
        "matchCount": "0",
        "teardown": []
    },
    {
        "id": "db7c",
        "name": "Add mpls mod action with protocol (invalid)",
        "category": [
            "actions",
            "mpls"
        ],
        "setup": [
            [
                "$TC actions flush action mpls",
                0,
                1,
                255
            ]
        ],
        "cmdUnderTest": "$TC actions add action mpls mod protocol ipv4",
        "expExitCode": "255",
        "verifyCmd": "$TC actions list action mpls",
        "matchPattern": "action order [0-9]+: mpls.*modify.*protocol.*ip.*pipe",
        "matchCount": "0",
        "teardown": []
    },
    {
        "id": "b070",
        "name": "Replace existing mpls push action with new ID",
        "category": [
            "actions",
            "mpls"
        ],
        "setup": [
            [
                "$TC actions flush action mpls",
                0,
                1,
                255
            ],
            "$TC actions add action mpls push label 20 pipe index 12"
        ],
        "cmdUnderTest": "$TC actions replace action mpls push label 30 pipe index 12",
        "expExitCode": "0",
        "verifyCmd": "$TC actions get action mpls index 12",
        "matchPattern": "action order [0-9]+: mpls.*push.*protocol.*mpls_uc.*label.*30.*pipe.*index 12 ref",
        "matchCount": "1",
        "teardown": [
            "$TC actions flush action mpls"
        ]
    },
    {
        "id": "95a9",
        "name": "Replace existing mpls push action with new label, tc, ttl and cookie",
        "category": [
            "actions",
            "mpls"
        ],
        "setup": [
            [
                "$TC actions flush action mpls",
                0,
                1,
                255
            ],
            "$TC actions add action mpls push label 20 tc 3 ttl 128 index 1 cookie aa11bb22cc33dd44ee55ff66aa11b1b2"
        ],
        "cmdUnderTest": "$TC actions replace action mpls push label 30 tc 2 ttl 125 pipe index 1 cookie aa11bb22cc33",
        "expExitCode": "0",
        "verifyCmd": "$TC actions get action mpls index 1",
        "matchPattern": "action order [0-9]+: mpls.*push.*protocol.*mpls_uc.*label.*30 tc 2 ttl 125 pipe.*index 1.*cookie aa11bb22cc33",
        "matchCount": "1",
        "teardown": [
            "$TC actions flush action mpls"
        ]
    },
    {
        "id": "6cce",
        "name": "Delete mpls pop action",
        "category": [
            "actions",
            "mpls"
        ],
        "setup": [
            [
                "$TC actions flush action mpls",
                0,
                1,
                255
            ],
            "$TC actions add action mpls pop protocol ipv4 index 44"
        ],
        "cmdUnderTest": "$TC actions del action mpls index 44",
        "expExitCode": "0",
        "verifyCmd": "$TC actions list action mpls",
        "matchPattern": "action order [0-9]+: mpls.*pop.*index 44 ref",
        "matchCount": "0",
        "teardown": []
    },
    {
        "id": "d138",
        "name": "Flush mpls actions",
        "category": [
            "actions",
            "mpls"
        ],
        "setup": [
            [
                "$TC actions flush action mpls",
                0,
                1,
                255
            ],
            "$TC actions add action mpls push label 10 index 10",
            "$TC actions add action mpls push label 20 index 20",
            "$TC actions add action mpls push label 30 index 30",
            "$TC actions add action mpls push label 40 index 40"
        ],
        "cmdUnderTest": "$TC actions flush action mpls",
        "expExitCode": "0",
        "verifyCmd": "$TC actions list action mpls",
        "matchPattern": "action order [0-9]+: mpls.*push.*",
        "matchCount": "0",
        "teardown": []
    }
]
